﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Administrador.App_Code;
using MySql.Data.MySqlClient;
public class admUsuario {
    Conexion con;
    String strTabla = "adm_cent_usuario";
    private Boolean Conectado = false;
    public admUsuario() {
        try {
            con = new Conexion();
            Conectado = true;
        } catch (Exception ex) {
            Conectado = false;
        }

    }

    public DataSet Consultar(int intIdUsuario = -1, String strNombre = "", String strUsuario = "") {
        String strConsulta = "";
        DataSet dsConsulta = new DataSet();
        String strRestricciones = "";
        strConsulta = " SELECT * FROM " + strTabla;
        strConsulta += " WHERE 1=1 ";
        if (intIdUsuario != -1) {
            strRestricciones += " AND idUsuario = " + intIdUsuario + " ";
        }

        if (strNombre != "") {
            strRestricciones += " AND nombre = '" + strNombre + "' ";
        }

        if (strUsuario != "") {
            strRestricciones += " AND usuario = '" + strUsuario + "' ";
        }

        strConsulta += " " + strRestricciones;
        try {
            //con.Open();
            con.connection.Open();
            MySqlCommand myCommand = new MySqlCommand();
            myCommand.CommandText = strConsulta;
            myCommand.Connection = con.connection;
            MySqlDataReader drSelect;
            drSelect = myCommand.ExecuteReader();
            DataTable dtSelect = new DataTable();
            dtSelect.Load(drSelect);
            dsConsulta.Tables.Add(dtSelect);
            con.connection.Close();
        } catch (Exception ex) {
            dsConsulta = null;
        }
        return dsConsulta;
    }

    public int InsertarUsuario(String strNombre, String strUsuario, String strPassword, int intEstado) {
        int intResultado = -1;
        if (Conectado) {
            //se ejecuta el insert
            String strInsert = " INSERT INTO adm_cent_usuario(nombre, usuario, password, Estado) VALUES(";
            strInsert += "' " + strNombre + "', '" + strUsuario + "', '" + strPassword + "'," + intEstado + ") ";
            try {
                con.Insert(strInsert);
                intResultado = 1;
            } catch (Exception ex) {
                intResultado = -1;
            }
        } else {
            intResultado = -1;
        }
        return intResultado;
    }

    public int ActualizarUsuario(int intIdUsuario, String strNombre = "", String strPassword = "") {
        int intResultado = -1;
        String strActualizar = "";
        if (strNombre != "") {
            strActualizar = " UPDATE adm_cent_usuario set nombre='" + strNombre + "'";
        }

        if (strNombre != "" & strPassword != "") {
            strActualizar += ", password = '" + Funciones.GetMD5(strPassword) + "' ";
        }

        if (strNombre != "" || strPassword != "") {
            strActualizar += " WHERE idUsuario = " + intIdUsuario + " ";

            try {
                MySqlCommand myCommand = new MySqlCommand(strActualizar);
                intResultado = myCommand.ExecuteNonQuery();
            } catch (Exception ex) {
                intResultado = -1;
            }
        }
        return intResultado;
    }

    public int EliminarUsuario(int intIdUsuario) {
        int intResultado = -1;
        String strEliminar = " DELETE FROM adm_cent_usuario WHERE idUsuario = " + intIdUsuario + " ";
        try {
            MySqlCommand myCommand = new MySqlCommand(strEliminar);
            intResultado = myCommand.ExecuteNonQuery();
        } catch (Exception ex) {
            intResultado = -1;
        }
        return intResultado;
    }

    public int CambiarEstado(int intIdUsuario, int intEstado) {
        int intResultado = -1;
        if (intEstado != 0 || intEstado != 1) {
            return -1;
        }
        try {
            String strActualizarEstado = " UPDATE adm_cent_usuario set Estado = " + intEstado + " ";
            strActualizarEstado += " WHERE idUsuario = " + intIdUsuario + " ";
            MySqlCommand myCommand = new MySqlCommand(strActualizarEstado);
            intResultado = myCommand.ExecuteNonQuery();
        } catch (Exception ex) {
            intResultado = -1;
        }
        return intResultado;
    }
}